Computers often communicate with data storage devices, such as disk drives, in order to transfer data between the data storage device and computer. For example, desktop computers can communicate with a hard drive to access and play music files stored on the hard drive. Traditionally, a computer would send a single read or write command to a data storage device. However, protocols, such as Native Command Queuing, have been developed to allow a computer to simultaneously send multiple commands to a data storage device. In some cases, these protocols allow the data storage device to optimize the order in which the commands are executed.
Allowing the data storage device to receive a queue of commands often increases the speed at which the data is transferred, which is helpful in a variety of applications, including applications that utilize asynchronous I/O. Because there is a continual goal to create faster computers, it is desirable that new technologies take advantage of queued command protocols in order to further increase computer performance.